﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Collections.Generic;

namespace Amoo.Usuario
{
    public partial class Cadastro : Code.Business.PageBase
    {

        protected void Page_Load(object sender, EventArgs e)
        {

            if (!Page.IsPostBack)
            {
                Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
                PopularComboHierarquia(ddlEstadual, oComunidade.GetAll(1, 1));
                oComunidade.Dispose();
                //lblTipoComunidade.Text = "Estaduais";
            }
        }


        protected void ddlEstadual_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Convert.ToInt32(ddlEstadual.SelectedValue) > -1)
            {
                //hdnIdComunidadePai.Value = ddlEstadual.SelectedValue.ToString();
                //if (oUser.bolUsuarioAdministrador)
                //    ListaComunidades(Convert.ToInt32(ddlEstadual.SelectedValue));

                Amoo.Code.Data.Comunidade oComunidade = new Amoo.Code.Data.Comunidade();
                PopularComboHierarquia(ddlMunicipal, oComunidade.GetAll(Convert.ToInt32(ddlEstadual.SelectedValue), 1));
                oComunidade.Dispose();

                //lblTipoComunidade.Text = "Municipais";
            }
            else
            {
                ddlMunicipal.Items.Clear();
                //ListaComunidades("E");
                //lblTipoComunidade.Text = "Estaduais";
            }
        }

        protected void ddlMunicipal_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (Convert.ToInt32(ddlMunicipal.SelectedValue) > -1)
            {
                //lblTipoComunidade.Text = "Privadas, Publicas ou Pessoais";
                //txtNomeComunidade.Text = ddlMunicipal.Text;
            }
            else
            {
                ddlMunicipal.Items.Clear();
                //txtNomeComunidade.Text = "";
                //lblTipoComunidade.Text = "Municipais";
            }
        }

        public void PopularComboHierarquia(DropDownList pComboBox, List<Code.Entity.Comunidade> pListaComunidade)
        {
            ListItem lstItem;

            pComboBox.Items.Clear();
            lstItem = new ListItem("Selecione", "-1");
            pComboBox.Items.Add(lstItem);

            foreach (Code.Entity.Comunidade eComunidade in pListaComunidade)
            {
                lstItem = new ListItem(eComunidade.dsNomeComunidade, eComunidade.idComunidade.ToString());
                pComboBox.Items.Add(lstItem);
            }
            pComboBox.DataBind();
        }
        
        protected void Unnamed1_Click(object sender, ImageClickEventArgs e)
        {
            try
            {

                if (ddlMunicipal.SelectedIndex == -1)
                {
                    throw new Exception("É preciso preencher os campos Estado e Municipio para efetuar o cadastro.");
                }

                Code.Business.Usuario oUsuario = new Amoo.Code.Business.Usuario();
                Code.Entity.Usuario eUsuario = new Amoo.Code.Entity.Usuario()
                {
                    dsNome = txtNome.Text,
                    dsEmail = txtEmail.Text,
                    dsSenha = txtSenha.Text,
                    dsLogradouro = txtEndereco.Text,
                    dsEstado = ddlEstadual.SelectedItem.Text,
                    dsCidade = ddlMunicipal.SelectedItem.Text,
                    dsPais = "Brasil",
                    dsBairro = txtBairro.Text,
                    dsCep = txtCep.Text,
                    Identidade = txtIdentidade.Text,
                    CPFCNPJ = txtCPFCNPJ.Text
                };

                if (eUsuario.dsNome.IndexOf(" ") == -1)
                {

                    if (txtSenha.Text != txtConfirmarSenha.Text)
                    {
                        throw new Exception("Senha inválida!<br>O Campo senha e confirmar senha não estão idênticos.");
                    }

                    if (txtNome.Text == "")
                    {
                        throw new Exception("Obrigatório o preenchimento do campo Nome.");
                    }

                    if (txtSenha.Text == "")
                    {
                        throw new Exception("Obrigatório o preenchimento de uma Senha.");
                    }

                    if (txtEmail.Text == "")
                    {
                        throw new Exception("Obrigatório o preenchimento do Email alternativo.");
                    }
                    
                    if (ddlMunicipal.Text == "")
                    {
                        throw new Exception("Obrigatório o preenchimento do Estado e do Municipio.");
                    }

                    oUsuario.Insert(eUsuario);
                    eUsuario = oUsuario.Login(eUsuario);



                    if (eUsuario != null)
                    {

                        eUsuario.bolCriaComunidade = true;
                        Session["userSite"] = eUsuario;

                        //HabilitaUsuario(true);
                        Response.Redirect("~/Comunidade/CadastroComunidade.aspx");
                    }
                    else
                    {
                        //HabilitaUsuario(false);
                    }
                }
                else
                {
                    ShowWindowAlert("Não pode haver espaço no seu nome de usuário pois sera criado um e-mail amoo com o seu nome de usuário.");
                }

            }
            catch (Exception ex)
            {
                //lblErr.Text = ex.Message;
                ShowWindowAlert(ex.Message);
            }

        }

    }
}
